package com.ug.system.service;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.ug.system.entity.SysRole;
import com.ug.system.entity.dto.QueryDto;
import com.ug.system.entity.dto.SysRoleDto;
import org.springframework.security.core.GrantedAuthority;

import java.util.List;

/**
 * @Author LY
 * @create 2024/7/16 15:51
 * @Description 角色service
 */
public interface SysRoleService {

    /**
     * 获取角色列表
     * @param sysRoleDto 查询角色类
     */
    IPage<SysRole> getRoleList(QueryDto queryDto, SysRoleDto sysRoleDto);

    /**
     * 编辑角色
     * @param role 角色信息
     */
    void editRole(SysRole role);

    /**
     * 删除角色
     * @param roleId 角色roleId
     */
    void delRole(Long roleId);

    /**
     * 通过用户ID获取当前用户角色
     * @param userId 用户id
     */
    List<SysRole> getRoleByUserId(Long userId);

    /**
     * 获取用户当前角色列表
     * @param userId 用户id
     */
    List<GrantedAuthority> getRolesByUser(Long userId);

    /**
     * 根据角色编码获取角色信息
     * @param code 角色编码
     */
    SysRole getRoleByCode(String code);
}
